using System;
using System.Windows.Forms;

namespace Pegasus.Windows.Forms.Explorer
{
	/// <summary>
	/// This is the interface the the Explorer view class uses to communicate with a list/view control that 
	/// appears in the right pannel of the Explorer view.
	/// </summary>
	public interface IExplorerList
	{
		/// <summary>
		/// Gets or sets the view.
		/// </summary>
		/// <value>The view.</value>
		View View
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the list of selected nodes.
		/// </summary>
		/// <value>The list of selected nodes.</value>
		ExplorerNode[] SelectedListNodes
		{
			get;
			set;
		}

		/// <summary>
		/// Sets the nodes to display in the list.
		/// </summary>
		/// <param name="nodes">The nodes collection.</param>
		void SetNodes( ExplorerNodeCollection nodes );
	
		/// <summary>
		/// Sets the image list for the icons in the list.
		/// </summary>
		/// <param name="smallImageList">The small image list.</param>
		/// <param name="largeImageList">The large image list.</param>
		void SetImageList( ImageList smallImageList, ImageList largeImageList );
	}
}
